import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

import '../page/page_webview.dart';

// 保存文章数据的单个条目，无需更新UI，stateless
class ArticleItem extends StatelessWidget {
  final itemData;

  // 构造方法
  const ArticleItem(this.itemData);

  @override
  Widget build(BuildContext context) {
    // 时间和作者行内容
    Row auther = Row(
      children: [
        Expanded(
            child: Text.rich(
                TextSpan( // TextSpan是一种文本修饰类，类似于艺术字体
                  children: [
                    const TextSpan(text: "作者: "),
                    TextSpan(
                      text: itemData['author'],
                      style: TextStyle(color: Theme.of(context).primaryColor)
                    )
                  ]
            ))
        ),
        Text(itemData['niceDate']), //时间显示
      ],
    );

    /// 标题内容
    Text title = Text(
      itemData['title'],
      style: const TextStyle(fontSize: 16.0, color: Colors.black),
      textAlign: TextAlign.left,
    );

    ///章节名的内容
    Text chapterName = Text(
      itemData['chapterName'],
      style: TextStyle(color: Theme.of(context).primaryColor),
    );

    ///将上述封装好的内容控件，放到列控件中
    Column column = Column(
      ///垂直线性布局控件
      crossAxisAlignment: CrossAxisAlignment.start, //控件左对齐
      children: [
        Padding(
            padding: EdgeInsets.all(10.0),
            child: auther,
        ),
        Padding(
            padding: EdgeInsets.fromLTRB(10.0, 5.0, 10.0, 5.0),
            child: title,
        ),
        Padding(
            padding: EdgeInsets.fromLTRB(10.0, 5.0, 10.0, 5.0),
            child: chapterName,
        ),
      ],
    );
    /// 将整列内容，封装到卡片中，在主页列表中按行显示
    return Card(
      ///阴影效果
      elevation: 4.0,
      child: InkWell(
        child: column,
        onTap: (){
          Navigator.push(context, MaterialPageRoute(builder: (context){
            itemData['url'] = itemData['link'];
            return WebViewPage(itemData);
          }));
        },
      ),
    );
  }

}